#pragma once
#include "ckObject.h"
#include "zCore.h"
#include "ckRasterRadiation.h"
#include <string>
#include <vector>

namespace ck
{
	namespace data
	{
		class Landsat;
		class RasterRadiation;

		class ZCORE_API LandsatRadiation : public ckObject
		{
		public:
			LandsatRadiation();
			virtual ~LandsatRadiation();

		public:
			double				GetCloudCoverage();
			void				SetCloudCoverage(double cc);

			RasterRadiation*	GetRadiation();
			RasterRadiation*	GetBandRadiation();
			RasterRadiation*	GetBandRadiation(z_uint32 i);
			z_uint32			GetBandCount();

		public:
			RESULTCODE			Write(const char* szPath);

		public:
			RESULTCODE			Create(Landsat* pLandsat);

		protected:
			std::string			m_strName;
			std::string			m_strPath;
			std::vector< std::string> m_bkeys;

			RasterRadiation		m_rad;
			RasterRadiation*	m_brads;
			z_uint32			m_nBands;
			double				m_cc;		//CloudCoverate;
		};
	}
}
